/**
 * Classe representativa de um usuario
 * @author emerson borges - emerson.borges@ccc.ufcg.edu.br
 * @author rafael lima    - rafael_ufcg10@gmail.com
 */


public class Usuario extends Pessoa {

	private String descricao;
	private String email;
	
	/**
	 *Construtor default de usuario 
	 */
	public Usuario() {
		super("");		
		this.descricao = "";
		this.email = "";
	}
	
	/**
	 * Construtor de Usuario 
	 * @param nome - nome do usuario
	 * @param descricao - descricao para o usuario
	 * @param email - email do usuario
	 */
	public Usuario(String nome, String descricao, String email){
		super(nome);
		this.descricao = descricao;
		this.email = email;
	}
	
	/**
	 * Metodo para acessar a descricao do usuario
	 * @return descricao
	 */
	public String getDescricao() {
		return descricao;
	}

	/**
	 * Metodo para modificar os dados da descricao do usuario
	 * @param descricao
	 */
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	/**
	 * Metodo para acessar o email do usuario
	 * @return email
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * Metodo para modificar os dados da descricao do usuario
	 * @param email
	 */
	public void setEmail(String email) {
		this.email = email;
	}
	
	/**
	 * Mostra os dados do usuario como uma string
	 */
	@Override
	public String toString(){
		return String.format("Nome: %s\n Descricao: %s\n Email: %s", super.toString(), getDescricao(), getEmail());
	}
	
	/**
	 * Verifica se dois contatos sao iguais
	 */
	public boolean equals(Object obj){
		if(!(obj instanceof Usuario)){
			return false;
		}
		Usuario outro = (Usuario) obj;
		return getNome().equals(outro.getNome());

	}
}